Repository navigation
Release 1.1.0 - #92
Merged
Merged
Conversation
* add arm64 builds & tests, run workflow * skip cp39 and cp310 on arm64 windows * add v5 python-setup for arm64 windows Updated Python setup action for Windows ARM architecture. * fix typo * print env variables for windows to debug * fix pwsh command before build * run SET * Specify architecture for MSVC developer prompt * add arch option to msvc action * remove SET * uncomment skipped sections, remove fork branch trigger * update CHANGELOG.rst Added version 1.0.1-dev section with a note about Windows arm64 wheel support.
…ython 3.15 (#80) * Fix a crash when calling `copy()` on a flushed compress object on Python 3.15 Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com> * test: Address Pytest 9.1 warnings Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com> * chore: Allow usage of ` tox -e 3.15 -- <some pytest params>` Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com> * ci: Add Python 3.15 and 3.15t to CI matrix Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com> * ci: Replace `macos-13` runner with `macos-15-intel` Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com> --------- Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com>
In the bundled zlib-ng, level 1 uses deflate_quick(), which codes all data with the fixed Huffman codes and never falls back to stored blocks. Bytes 144 to 255 take 9 bits in these codes, so data made of them with no repeats grows by 12.5%. Each compressor had an output buffer only about 10% larger than the block size, so compress_and_crc() raised OverflowError. At level 1, make the buffer the block size plus an eighth plus 500 bytes, because no input byte takes more than 9 bits.
When raw.write() raised an error in the thread that writes the compressed blocks, that thread exited without calling task_done(). As a result, flush() waited forever, and so did closing the file object that gzip_ng_threaded.open() returns. write() blocked forever when an input queue was full. The thread now stores the error and drops later blocks until stop() ends it, so write(), flush(), and close() can raise the error in the calling thread. After an error, close() closes raw only if closefd is true, so it no longer closes a file object passed to gzip_ng_threaded.open(). close() now calls flush() before it writes the trailer, as python-isal's close() has done since pycompression/python-isal@5ef868b, so the trailer always comes after the queued blocks. This ports pycompression/python-isal#275.
ci: re-enable PyPy wheel builds
Update to latest actions
Review feedback: one buffer size for all levels is simpler, and the extra 2.5% of headroom at the other levels doesn't matter.
Fix `gzip_ng_threaded` writers that raise `OverflowError` at compression level 1
Raise write errors of `gzip_ng_threaded` writers instead of waiting forever
Throw an overflowerror on adverserial headers
Update included zlib-ng distribution to 2.3.3.
Update release method and add sanitizer tests
Fix broken pipe error when piping into programs using the CLI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checklist